首页 > 试题广场 >

进制转换

[编程题]进制转换
  • 热度指数:896266 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

数据范围:保证结果在

输入描述:

输入一个十六进制的数值字符串。



输出描述:

输出该数值的十进制字符串。不同组的测试用例用\n隔开。

示例1

输入

0xAA

输出

170
import sys

def hex_to_decimal(hex_str):
    for hex_str in sys.stdin:       #读取多行输入
        hex_str = hex_str.strip()   #去除末尾空白字符或换行
        if hex_str == " ":          #判断是否为空字符串
            continue
        decimal = int(hex_str,16)   #十六进制转十进制。int转10,16/8/2分别代表十六、八、二进制
        return decimal

if __name__ == "__main__":      #调用主函数
   hex_input = "0x2C"
   print(hex_to_decimal(hex_input))
发表于 2024-03-23 15:29:26 回复(0)
hexnum = input().split('x')[1]
num_dict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}

hexnum = hexnum.upper()
hexnum_list = []
for i in hexnum:
hexnum_list.append(num_dict[i])

j = 0
for i in range(len(hexnum_list)):
j+= pow(exp= (len(hexnum_list)-i-1),base = 16)*hexnum_list[i]

print(j)

发表于 2024-01-07 04:43:37 回复(0)
while True:
    # 转十进制 int(s,要转换的进制数) eg. 16转10 int(s,16) 、8转10 int(s,8)
    # 十进制转二进制 bin(s)
    try:
        print(int(input().strip(),16))
    except:
        break

发表于 2023-11-09 18:42:26 回复(0)
aimstr = input()
rel = int(aimstr,16)
print(rel)
发表于 2023-10-24 23:47:28 回复(0)
while True:
    try:
        L = input().split()
        for s in L:
            print(int(s,16))
    except:
        break

发表于 2023-03-17 15:04:46 回复(0)
import sys

for line in sys.stdin:
    if line != '\n':
        a = line.split()
result = 0
string = a[0][::-1]
for i in range(len(string)-2):
    if string[i].isdigit():
        result = result + int(string[i])*16**(i)
    else:
        result = result + (ord(string[i])-55)*16**(i)
print(result, end='\n')

发表于 2023-03-09 17:39:50 回复(0)
while True:
    try:
        print(int(input(),16))
    except:
        break
发表于 2022-09-10 07:26:32 回复(0)
i = int(input(), 16)
print(i)
直接在输入的时候就将字符串的16进制转为10进制
发表于 2022-09-08 11:18:01 回复(0)
importsys
str = sys.stdin.readline().strip().split('x')[1]
result = 0
fori in range(len(str)):
    num = str[::-1][i]
    ifnum == 'A':
        num = 10
    elif num == 'B':
        num = 11
    elif num == 'C':
        num = 12
    elif num == 'D':
        num = 13
    elif num == 'E':
        num = 14
    elif num == 'F':
        num = 15
    else:
        num = int(num)
    result = result + num*(16**i)
 
print(result)
发表于 2022-09-05 15:45:47 回复(0)
s = input()
s = list(s)
#倒序,并排除前两位十六进制符号
s = s[-1:1:-1]
count = 0
dic = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"A":10,"B":11,"C":12,"D":13,"E":14,"F":15}
for index,items in enumerate(s):
    count += dic[items] * (16**index)
print(count)
发表于 2022-09-01 20:17:31 回复(0)
num=input()
print(int(num,16))
发表于 2022-08-27 22:07:11 回复(0)
处理多行输入可以用while True 里面再用异常捕捉结构
while True:
    try:
        print(int(input(), 16))
    except:
        break

发表于 2022-08-24 12:38:08 回复(0)
str=input()
print(int(str,16))
发表于 2022-08-18 20:12:39 回复(0)

import sys
dict_16 = {"0":"0000","1":"0001","2":"0010","3":"0011","4":"0100","5":"0101","6":"0110","7":"0111","8":"1000","9":"1001","A":"1010","B":"1011","C":"1100","D":"1101","E":"1110","F":"1111"}
for line in sys.stdin:
    a = line.split()
    string_result = a[0]
string_result = string_result[2:]
#将16进制字符串缝合
string_2 = ""
for i in string_result:
    string_2 = string_2+dict_16[i]
#计算10进制结果
finally_result = 0
square = len(string_2)-1
for i in string_2:
    if(i == "1"):
        finally_result = finally_result + 2**square
    square = square - 1
    
print(finally_result)
    
不调包的简单写法
发表于 2022-08-15 11:28:22 回复(0)
print(int(input(), 16))
一行过的我有点心慌
发表于 2022-08-09 20:44:40 回复(0)
a = input()
n = int(a,16)
if (n >= 1) or (n <= 2**31-1):
    print(n)
else:
    print("结果不在范围内")
发表于 2022-08-07 02:10:45 回复(0)
str1 = str(input())
str2 = str1[2:]
list1 = list(str2)
dict1 = {'A':'10','B':'11','C':'12','D':'13','E':'14','F':'15'}
list2 = [dict1[i] if i in dict1 else i for i in list1]
list3 = []
Sum = 0
for i in list2:
    list3.append(int(i))
for i in range(len(list3)):
    Sum += list3[-(i+1)]*pow(16,i)
print(Sum)
迂回解法🤣
发表于 2022-08-06 19:57:30 回复(0)

问题信息

难度:
105条回答 161590浏览

热门推荐

通过挑战的用户

查看代码